<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>函数扩展运算符和箭头函数</title>
</head>
<body>
<script type="text/javascript">
    /**
     函数扩展运算符和剩余运算符是一个对立面，他们都是...标识开头
        剩余运算符：将多个参数汇集到一个数组中
        扩展运算符：将一个数组拆分成多个参数
    */
    //例如求一个数组的最大值
    const arr = [1,2,3,45,324,5432,60];
    //ES5
    console.log(Math.max.apply(null,arr));
    //ES6
    console.log(Math.max(...arr));
    //=========================================================================
    /**
     * 箭头函数是对ES5中函数定义的简写使用 => 代替了function标识符
     * function (){} 等于 () => {}
    * */
    //当只有一个参数时可简写为,如果没有参数或者是有多个参数时必须添加括号
    let fun = a => {return a}
    console.log(fun(2));
    //当函数体只有return语句时，也可以省略return和{}
    let fun2 = () => 1;
    console.log(fun2());
    //但是当return语句返回的是一个对象或者一个{}大括号内的代码块,就必须使用括号将对象或者{}代码块包括起来
    let fun3 = (id,name) => ({
        id:id,
        name:name
    });
    console.log(fun3(1,'tom'));
</script>
</body>
</html>